import request from '@/utils/request'

/**
 * 获取学生仪表板概览
 * @returns {Promise} 返回学生仪表板概览数据
 */
export function getStudentDashboardOverview() {
  return request({
    url: '/api/student/dashboard/overview',
    method: 'get'
  })
}

/**
 * 获取学生课程信息
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码，默认1
 * @param {number} params.size - 每页条数，默认10
 * @returns {Promise} 返回学生课程信息数据
 */
export function getStudentCourses(params) {
  return request({
    url: '/api/student/course',
    method: 'get',
    params
  })
}

/**
 * 获取学生成绩概览
 * @returns {Promise} 返回学生成绩概览数据
 */
export function getStudentGradeOverview() {
  return request({
    url: '/api/student/grade/overview',
    method: 'get'
  })
}

/**
 * 获取学生通知列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码，默认1
 * @param {number} params.size - 每页条数，默认10
 * @param {boolean} params.isRead - 是否已读，null表示全部
 * @returns {Promise} 返回学生通知列表数据
 */
export function getStudentNotifications(params) {
  return request({
    url: '/api/student/notification',
    method: 'get',
    params
  })
}

/**
 * 标记通知为已读
 * @param {string} id - 通知ID
 * @returns {Promise} 返回标记结果
 */
export function markNotificationAsRead(id) {
  return request({
    url: `/api/student/notification/${id}/read`,
    method: 'post'
  })
}

/**
 * 批量标记通知为已读
 * @param {Object} data - 批量标记数据
 * @param {Array<string>} data.ids - 通知ID列表
 * @returns {Promise} 返回批量标记结果
 */
export function batchMarkNotificationsAsRead(data) {
  return request({
    url: '/api/student/notification/read',
    method: 'post',
    data
  })
}